Various types of switching networks are known in the art. Some of these types have hierarchical topologies, meaning that the switches in the network are connected together in multiple stages (or levels). A signal input at one of the edge ports of the switching network, at the bottom of the hierarchy, generally pass through one or more internal stages, at higher levels in the hierarchy, before reaching another edge port from which it is output. Some hierarchical networks are non-blocking, in the sense that any unused edge port can always be connected to any other unused edge port, regardless of existing connections within the network.
A fat-tree network is a kind of hierarchical switching network, also referred to as a CBB or Clos network, which is made up of crossbar switches arranged in interconnected stages. Fat-tree networks were originally defined by Leiserson in “Fat-Trees: Universal Networks for Hardware Efficient Supercomputing,” IEEE Transactions on Computers C-34(10), pages 892-901 (1985), and are now widely used in parallel and distributed computing architectures. Further aspects of fat trees are described, for example, in U.S. Pat. No. 8,570,865, whose disclosure is incorporated herein by reference.
In a fat-tree network, computing nodes are connected to leaf switches at the edge of the network, and the leaf switches are interconnected by links to spine switches arranged in multiple hierarchical levels inside the network. The numbers of spine switches and links at each level are chosen so as to provide sufficient bandwidth between the spine switches to enable multiple computing nodes (or all of the computing nodes) to exchange messages via the network concurrently. The term “fat-tree” is used broadly in the art to define any and all types of communication networks meeting the above criteria and includes extended and generalized types of fat trees.